package com.agan.net.link;

public class Hide {

    public static void main(String[] args) {
        Hide hide=new Hide();
        hide.testXOR();

    }

    //有符号右移	a >> b	将 a 的二进制表示向右移 b (< 32) 位，丢弃被移出的位。
    public void test4(){
        Long x=2048L;
        System.out.println(Long.toBinaryString(x));
        System.out.println(Long.toBinaryString(x>>>10));
        System.out.println(x>>>10);
    }

    //按位与（ AND）	a & b	对于每一个比特位，只有两个操作数相应的比特位都是1时，结果才为1，否则为0。
    public void test3(){
        Long x=513L;
        Long y=-512L;
        System.out.println(Long.toBinaryString(x));
        System.out.println(Long.toBinaryString(y));

        System.out.println(x&y);
        System.out.println(Long.toBinaryString(x&y));
    }

    //反转操作数的比特位，即0变成1，1变成0
    public void test2(){
        Long x=3L;
        //反转操作数的比特位，即0变成1，1变成0
        System.out.println(Long.toBinaryString(~x));
    }

    //按位异或（XOR）	a ^ b	对于每一个比特位，当两个操作数相应的比特位有且只有一个1时，结果为1，否则为0。
    public void testXOR(){
        Long x=512L;
        Long y=1L;
        System.out.println(Long.toBinaryString(x));
        System.out.println(Long.toBinaryString(y));

        System.out.println(x^y);
        System.out.println(Long.toBinaryString(x^y));
    }



    public void test(){
        //        long l=Integer.MAX_VALUE+2;
//
//        long handle=257;
//        int temp=(int) (handle >>> Integer.SIZE);
//        System.out.println( temp);
//
//        int temp=(int) (handle >>> Integer.SIZE);
//        System.out.println( temp);

        int x=4;
        int y=63;
        System.out.println(Integer.toBinaryString(x));
        System.out.println(Integer.toBinaryString(y));

        System.out.println(x&y);
    }

    public void bitmap() {
        long bitmap=0;

        bitmap |=1L<<2;//存入3
        System.out.println(Long.toBinaryString(bitmap));
        bitmap |=1L<<4;//存入5
        System.out.println(Long.toBinaryString(bitmap));
        bitmap |=1L<<63;//存入64
        System.out.println(Long.toBinaryString(bitmap));
        bitmap ^=1L<<4;//剔除5
        System.out.println(Long.toBinaryString(bitmap));
    }
}
